home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / guestbook_beanwebb.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  99 lines

  1. #
  2. # This script was written by Renaud Deraison <deraison@cvs.nessus.org>
  3. #
  4. # See the Nessus Scripts License for details
  5. #
  6. # Ref:
  7. # From: "euronymous" <just-a-user@yandex.ru>
  8. # To: vuln@security.nnov.ru, bugtraq@securityfocus.com
  9. # Subject: Beanwebb Guestbook v1.0 vulnerabilities
  10.  
  11.  
  12. if(description)
  13. {
  14.  script_id(11500);
  15.  script_bugtraq_id(7231, 7232);
  16.  script_version ("$Revision: 1.7 $");
  17.  
  18.  
  19.  name["english"] = "Beanwebb's guestbook";
  20.  
  21.  script_name(english:name["english"]);
  22.  
  23.  desc["english"] = "
  24. The remote host is running Beanwebb's Guestbook.
  25.  
  26. This set of CGI has two vulnerabilities :
  27.  
  28.     - Anyone can access the admin page (admin.php)
  29.     - It is vulnerable to cross site scripting attacks (in add.php)
  30.     
  31.     
  32. An attacker may use these flaws to steal the cookies of your users
  33. or to inject fake information in the guestbook.    
  34.  
  35.  
  36. Solution : Delete this package
  37. Risk factor : Low";
  38.  
  39.  
  40.  
  41.  
  42.  script_description(english:desc["english"]);
  43.  
  44.  summary["english"] = "Checks for the presence of admin.php";
  45.  
  46.  script_summary(english:summary["english"]);
  47.  
  48.  script_category(ACT_GATHER_INFO);
  49.  
  50.  
  51.  script_copyright(english:"This script is Copyright (C) 2003 Renaud Deraison",
  52.         francais:"Ce script est Copyright (C) 2003 Renaud Deraison");
  53.  family["english"] = "CGI abuses";
  54.  family["francais"] = "Abus de CGI";
  55.  script_family(english:family["english"], francais:family["francais"]);
  56.  script_dependencie("find_service.nes", "http_version.nasl");
  57.  script_require_ports("Services/www", 80);
  58.  exit(0);
  59. }
  60.  
  61. #
  62. # The script code starts here
  63. #
  64.  
  65.  
  66. include("http_func.inc");
  67. include("http_keepalive.inc");
  68.  
  69. port = get_http_port(default:80);
  70.  
  71. if(!get_port_state(port))exit(0);
  72. if(!can_host_php(port:port))exit(0);
  73.  
  74.  
  75.  
  76.  
  77. gdir = make_list(cgi_dirs());
  78.  
  79. dirs = make_list("", "/guestbook");
  80. foreach d (gdir)
  81. {
  82.   dirs = make_list(dirs, string(d, "/guestbook"), d);
  83. }
  84.  
  85.  
  86. foreach dir (dirs)
  87. {
  88.  req = http_get(item:string(dir, "/admin.php"), port:port);
  89.  res = http_keepalive_send_recv(port:port, data:req);
  90.  
  91.  if( res == NULL ) exit(0);
  92.  
  93.  if(egrep(pattern:".*post.*admin\.php.*", string:res, icase:TRUE) &&  "Guestbook Admin" >< res)
  94.      {
  95.     security_warning(port);
  96.     exit(0);
  97.     }
  98. }
  99.